# esse arquivo descreve um subdiretorio do projeto, portanto, nao tem
# a diretiva project ()

# permite a criação de duas versões da biblioteca (release/debug)
set (CMAKE_DEBUG_POSTFIX "d")


# encontra a biblioteca SQLite3 usando o modulo
# desenvolvido previamente
find_package (SQLite3 REQUIRED)

# encontra a biblioteca libxml2
#find_package (LibXml2 REQUIRED)


# adiciona os diretorios de inclusao de arquivos de cabecalho
include_directories (${SQLITE3_INCLUDE_DIRS})
#include_directories (${LIBXML2_INCLUDE_DIRS})


set (SOURCES ListaCompras.cpp)


# cria uma biblioteca dinamica
add_library (ListaCompras ${SOURCES})


# target_link_libraries para bibliotecas funciona da seguinte forma:
#	bibliotecas compartilhadas/dinâmicas - "linka" no binário final 
#		(usuários da biblioteca não precisam referenciar suas dependencias)
#	bibliotecas estáticas - ao referenciar a biblioteca em um alvo,
#		suas dependencias são adicionadas automaticamente
list (APPEND LIBS ${SQLITE3_LIBRARIES})
#list (APPEND LIBS ${LIBXML2_LIBRARIES})
target_link_libraries (ListaCompras ${LIBS})


# flag necessario para uso da biblioteca estática
if (NOT BUILD_SHARED_LIBS)
	add_definitions ("-DLISTACOMPRAS_STATIC_LIB")
endif ()


# instalação da biblioteca estática/compartilhada/dinâmica(DLL)
#	RUNTIME DESTINATION -> é usado paras executáveis e DLL's  (Windows)
#	LIBRARY DESTINATION -> é usado para bibliotecas compartilhadas (.so, .dylib) (Unix/Mac)
#	ARCHIVE DESTINATION -> é usado para bibliotecas estáticas (.a, .lib) e de importação de DLL's
install (
	TARGETS ListaCompras
	RUNTIME DESTINATION bin
	LIBRARY DESTINATION lib
	ARCHIVE DESTINATION lib
	)

# instalação dos arquivos de cabecalho
set (PUBLIC_HEADERS ListaCompras.hpp)

install (FILES ${PUBLIC_HEADERS} DESTINATION include)
